package com.yunxi.module.system.api.logger;

import com.yunxi.framework.common.pojo.CommonResult;
import com.yunxi.framework.common.pojo.PageResult;
import com.yunxi.framework.common.util.object.BeanUtils;
import com.yunxi.module.system.dto.logger.OperateLogCreateReqDTO;
import com.yunxi.module.system.dto.logger.OperateLogPageReqDTO;
import com.yunxi.module.system.dto.logger.OperateLogRespDTO;
import com.yunxi.module.system.model.logger.OperateLogDO;
import com.yunxi.module.system.service.logger.OperateLogService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * <p>
 * 操作日志实现 提供 RESTful API 接口，给 Feign 调用
 * </p>
 *
 * @author lidy
 * @since 2024-05-27
 */
@RestController
@Validated
public class OperateLogApiImpl implements OperateLogApi {

    @Resource
    private OperateLogService operateLogService;

    /**
     * 创建操作日志
     *
     * @param createReqDTO 操作日志信息
     * @return 结果
     */
    @Override
    public CommonResult<Boolean> createOperateLog(OperateLogCreateReqDTO createReqDTO) {
        operateLogService.createOperateLog(createReqDTO);
        return CommonResult.success(true);
    }

    /**
     * 获得操作日志分页数据
     *
     * @param pageReqVO 分页参数
     * @return 分页数据
     */
    @Override
    public CommonResult<PageResult<OperateLogRespDTO>> getOperateLogPage(OperateLogPageReqDTO pageReqVO) {
        PageResult<OperateLogDO> pageResult = operateLogService.getOperateLogPage(pageReqVO);

        return CommonResult.success(BeanUtils.toBean(pageResult, OperateLogRespDTO.class));
    }
}
